Оценка сайтов | 2D MMO
как считаете стоит ли заниматся? все по обновлению страницы (пока не придумал как реализовать реалтайм)
тут можно скрины посмотреть https://vk.com/2dstranded
тут можно скрины посмотреть https://vk.com/2dstranded
если переписать джойстик и клавиши атаки поменять по другому, как в современных андроидах, то было б не плохо
Ну такое..
Реалтайм через HTTP не делается - будет слишком большой оверхед от Reliable протокола, и плюс ещё оверхед от HTTP. Можно делать на голом TCP(который так же Reliable) - но в таком случае на серверной стороне нужно писать батчинг пакетов и сжимать по максимуму данные(например углы в твоей игре можно упаковать в 4 бита, в остальных 4х битах хранить например состояние атакует ли игрок, защищается ли и.т.п). Лучшим решением будет взять RUDP - подмножество UDP. Реализует в себе несколько типов пакетов - Reliable, т.е гарантированно доставленные и Unrealible - не такие важные пакеты, которые доставлять не обязательно. Например заморачиваться о доставке пакета обновления позиции игрока не нужно, если этот пакет отправляется каждый кадр на сервере.
Основное отличие в том, что TCP считает все пакеты Reliable, а значит гарантирует то, что пакеты придут в том порядке, в каком отправлены. Из за этого возникает некоторый оверхед. С батчингом пакетов(когда несколько пакетов объеденяются в один TCP пакет) становится чуть быстрее, но всё ещё не так эффективно как UDP.
Есть обратная сторона у такого подхода - нужна поддержка WebSockets, которой нет в старых андроидовских WebView.
На HTTP твой сервер просто напросто умрёт на паре десятков игроков.
На клиентсайде же лучше всего взять голый канвас, и рисовать на нём.
________
посл. ред. 07.01.2019 в 18:47; всего 2 раз(а); by monobogdan
Основное отличие в том, что TCP считает все пакеты Reliable, а значит гарантирует то, что пакеты придут в том порядке, в каком отправлены. Из за этого возникает некоторый оверхед. С батчингом пакетов(когда несколько пакетов объеденяются в один TCP пакет) становится чуть быстрее, но всё ещё не так эффективно как UDP.
Есть обратная сторона у такого подхода - нужна поддержка WebSockets, которой нет в старых андроидовских WebView.
На HTTP твой сервер просто напросто умрёт на паре десятков игроков.
На клиентсайде же лучше всего взять голый канвас, и рисовать на нём.
________
посл. ред. 07.01.2019 в 18:47; всего 2 раз(а); by monobogdan